package com.itlaobing.array;

/**
 * 1、变量的作用: 用来存储数据
 * 2、变量的特征:  类型 、名称 、值
 * 3、栈 : 先进后出 ( FILO , First In , Last Out )
 * 4、栈帧:  每个放执行时都会对应一个栈帧
 * 5、数组概念:  数组变量 、 数组常量 、数组元素、数组长度 、遍历数组 、下标
 */
public class ArrayTest1 {

	public static void main(String[] args) {
		
		int a = 100 ; // variable
		System.out.println( a );
		a = 200 ;
		System.out.println( a );
		
		final int b = 1000 ; // 被final修饰的变量被称作 【最终变量】
		System.out.println( b );
		
		// b = 2000 ; // The final local variable b cannot be assigned. 
		
		System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
		
		// int[] array 用于 定义一个数组变量 ( variable)
		// 等号之后 { } 被称作 【数组常量 ( array constant )】
		// 数组产量只能在 数组初始化时使用，即 声明数组变量后立即为数组变量赋值时使用
		int[] array = { 2 , 4 , 6 , 8 , 10 };  // 无独有偶
		// 数组中每个位置存放的 数据 就是一个【元素 ( element )】
		System.out.println( array );
		
		// identityHashCode 仅针对 引用类型的 变量
		int hash = System.identityHashCode( array );
		System.out.println( hash );
		
		System.out.println( "~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~" );
		
		// length 是所有的数组实例都拥有的一个字段(field)，用以获取该数组可以容纳最大元素个数
		System.out.println( array.length );
		// 所有数组实例的 length字段都是被 final 修饰的，是最终变量，是不可更改的
		
		for (int i = 0; i < array.length; i++) {
			int element = array[ i ]; // 使用下标(或索引)访问数组元素
			System.out.println( element );
		}
		
		
	}

}
